Laravel 4のリクエストのライフサイクル
/icons/github.icon
予備知識
これはLarravelの起動スクリプト(後述)の中でロードされる
エントリポイントにリクエストが渡された後の流れ
最初のブートストラップを提供する
LaravelのApplicationオブジェクトが生成される
このオブジェクトはIoCコンテナ(Service Container)を提供する アプリケーションやpublicのディレクトリを設定できる
(ローカル環境か本番環境なのかの)環境の検知が行われる ユーザのconfigファイルに基づいた設定を実施する
タイムゾーン、error reporting
PHPのmcryptextensionが存在するかのチェック
frameworkを起動する際に必要なクラスの読み込み
アプリケーションをサービスロケータに登録
などなど
単純なService Providersはregister()ただ一つのメソッドをもっている
register()の中で、service providesはIoCコンテナを使って様々なものを登録する
登録されるもの
これによって、ユーザのアプリケーションでこれらのbindさえたサービスにアクセスできるようになる
Sevice Providerはイベントリスナーやview componests, Artisanコマンドなども登録することがある
後述
Requestオブジェクトがアプリケーションに送られるようになる
この後は
アプリケーションはResponseオブジェクトを返す
Responseオブジェクトはクライアントに返される
app/startが何をするのか
artisan.php
global.php
デフォルトでは基本的な項目が含まれている
Logggerの登録
ユーザのapp/filters.phpインクルード
なんでも追加していい
環境にかかわらず、すべてのリクエストで自動的にインクルードされる
local.php
local環境で動作しているときだけ呼ばれる
その他、自分で環境myenvを作ったらapp/stat/myenv.phpを同様に作成できる
ここにmyenvを追加すればよさそうkadoyau.icon start fileに何を書くか
得意決まっていない。なんでも設定できる
例えばview composer, ログの設定、PHPの設定...
複雑になりそうなら、初期化コードをService Providerにうつしたほうがいい
アプリケーションイベント
アプリケーションへのリクエスト前後の処理を登録できる
before
after
finish
クライアントへレスポンスを送った後に呼ばれる
shutdown
finishイベントハンドラのが終了した直後
グローバルなfilterや、グローバルにレスポンスを変更したいとき